
# 导入所需的库
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 将 matplotlib 的默认字体修改为黑体，字号修改为12
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定英文字体为Times New Roman
plt.rcParams['axes.unicode_minus'] = False    # 解决负数坐标轴显示问题
plt.rcParams['font.size'] = 10                # 指定字号

# 读取Excel文件
file_path = '附件2.xlsx'
data = pd.read_excel(file_path, sheet_name='2023年统计的相关数据')

# 将销售单价的范围转换为平均值
data['平均销售单价'] = data['销售单价/(元/斤)'].apply(lambda x: sum(map(float, x.split('-'))) / 2)

# 选择相关列进行分析：亩产量、种植成本、平均销售单价
relevant_columns = data[['种植成本/(元/亩)', '亩产量/斤', '平均销售单价']]

# 计算斯皮尔曼相关系数矩阵
spearman_corr = relevant_columns.corr(method='spearman')

# 生成热力图
plt.figure(figsize=(10, 6))  # 设置图形大小
sns.heatmap(spearman_corr, annot=True, cmap='inferno', center=0, linewidths=2, linecolor='black', fmt=".4f")

# 设置图形标题与美化细节
plt.title("Spearman热力图", fontsize=16, weight='bold', pad=20)  # 标题
plt.xticks(rotation=30)  # X轴标签旋转
plt.yticks(rotation=30)   # Y轴标签旋转
plt.tight_layout()       # 自动调整布局

# 展示热力图
plt.show()

